unit cargas;

interface
uses declaraciones,archivos,Dos,crt,sysutils;
{Menu de cargas de repuestos}
procedure MenuCargarRepuestos(var archRepuestos:TArchRepuestos);
{graba un registro de repuesto en el archivo de repuestos}
procedure GrabarRepuesto(var archR:TArchRepuestos;repu:TRepuesto);
{emite un listado detallado de los repuestos}
procedure ListarRepuestos(var archRepuestos:TArchRepuestos);
{++++++++++++++++ poner en libreria +++++++++++++++++}
{convierte de word a string}
function WToStr(W:word):string;
implementation
function WToStr(W:word):string;
var S:string;
begin
 Str(W,S);
 WToStr:=S;
end;
procedure GrabarRepuesto(var archR:TArchRepuestos;repu:TRepuesto);
begin
	repu.faltante:=false;
	write(archR,repu);
end;
procedure ListarRepuestos(var archRepuestos:TArchRepuestos);
var
i:word;
opcion:char;
repuesto:TRepuesto;
begin
	clrscr;
	{$I-}
	reset(archRepuestos);
	{$I+}
	if not eof(archRepuestos) then
	begin
		seek(archRepuestos,0);
		for i:=0 to filesize(archRepuestos)-1 do
			begin
			{$I-}
			read(archRepuestos,repuesto);
			{$I+}
			writeln(WToStr(i) + ') ' + TXT_REPUESTOS_DESCRIPCION + repuesto.descripcion + ' ' + TXT_REPUESTOS_STOCK + WToStr(repuesto.stock) + ' ' + TXT_REPUESTOS_CODIGO + WToStr(repuesto.codigo));
			end;
	end;
	writeln(TXT_VOLVER_ANT);
	repeat
	{$I-}
		opcion:=readkey;
	{$I+}
	until (IOResult = 0) and (opcion = OPCION_SALIR);
end;
{Carga un pedido al final del archivo de pedidos}
procedure MenuCargarRepuestos(var archRepuestos:TArchRepuestos);
var
opcion:char;
repuesto:TRepuesto;
	begin
	{Cuenta la cantidad de pedidos}
		{Hay espacio para crear pedidos de reparacion}
	repeat
		clrscr;
		gotoxy(4,4);
		Writeln(TXT_TIT_CARGA_REPUESTOS);
		gotoxy(8,6);
		Writeln(TXT_A_CARGA_REPUESTOS);
		gotoxy(8,8);
		Writeln(TXT_B_CARGA_REPUESTOS);
		gotoxy(8,10);
		Writeln(TXT_VOLVER_PPAL);
		gotoxy(2,24);
		opcion:=readkey;
		if upcase(opcion)=OPCION_1 then
		begin
			clrscr;
			gotoxy(4,4);
			Writeln(TXT_TIT_CARGA_REPUESTOS);
			repeat
			{carga el codigo del repuesto}
				clrscr;
				gotoxy(8,6);
				Writeln(TXT_CARGA_REPUESTO_1);
				gotoxy(2,14);
				{$I-}
				readln(repuesto.codigo);
				{$I+}
			until (IOResult = 0);
			repeat
			{carga la cantidad del repuesto}
				clrscr;
				gotoxy(8,6);
				Writeln(TXT_CARGA_REPUESTO_2);
				gotoxy(2,14);
				{$I-}
				readln(repuesto.stock);
				{$I+}
			until (IOResult = 0);
			repeat
			{carga la descripcion del repuesto}
				clrscr;
				gotoxy(8,6);
				Writeln(TXT_CARGA_REPUESTO_3);
				gotoxy(2,14);
				{$I-}
				readln(repuesto.descripcion);
				{$I+}
			until (IOResult = 0);
			{pide confimaion de la carga del repuesto anterior}
			repeat
				clrscr;
				gotoxy(8,6);
				Writeln(TXT_CONFIRMA_CARGA_REPUESTO);
				Writeln(TXT_REPUESTOS_CODIGO + WToStr(repuesto.codigo));
				Writeln(TXT_REPUESTOS_STOCK + WToStr(repuesto.stock));
				Writeln(TXT_REPUESTOS_DESCRIPCION + repuesto.descripcion);
				gotoxy(8,12);
				Writeln(TXT_SINO);
				gotoxy(18,12);
				{$I-}
				opcion:=readkey;
				{$I+}
				if upcase(opcion)=OPCION_SI then
				begin
					GrabarRepuesto(archRepuestos,repuesto);
				end;
			until (IOResult = 0) and ((upcase(opcion) = OPCION_SI) or (upcase(opcion) = OPCION_NO) );
		end;
		if upcase(opcion)=OPCION_2 then
		begin
			ListarRepuestos(archRepuestos);
		end;
	until opcion=OPCION_SALIR;
	end;
end.
